from channels.generic.websocket import WebsocketConsumer
from channels.exceptions import StopConsumer

CONNECT_LIST=[]#链接的对象列表

class ChatConsumer(WebsocketConsumer):
    def websocket_connect(self, message):
        print('客户端请求连接')
        # 有客户端来向后端发送websocket连接的请求时，自动触发。
        # 服务端允许和客户端创建连接。(握手)
        self.accept()
        #给客户端发消息
        # self.send()
        CONNECT_LIST.append(self)#建立连接时，把客户端对象添加到列表中

    def websocket_receive(self, message):
        # 浏览器基于websocket向后端发送数据时，自动触发接收消息。
        print('客户端：',message['text'])

        for i in CONNECT_LIST:
            i.send(message['text'])

        # self.send("不要回复不要回复")
        # self.close()#服务端主动断开连接

    def websocket_disconnect(self,message):
        # 客户端与服务端断开连接时，自动触发。
        print('断开连接')
        CONNECT_LIST.remove(self)#建立连接时，把客户端对象从列表中移除
        raise StopConsumer()